#ifndef UC_BRSFTRAV_H
#define UC_BRSFTRAV_H 1

#include "zadesk.h"
#include "zrxobject.h"
#include "zrxboiler.h"
#include "ucbrgbl.h"
#include "ucbrtrav.h"


// forward class declarations
class UcBrShell;
class UcBrFace;
class UcBrComplexShellTraverser;


class DllImpExp UcBrShellFaceTraverser : public UcBrTraverser
{
public:
    UCRX_DECLARE_MEMBERS(UcBrShellFaceTraverser);
    UcBrShellFaceTraverser();
    UcBrShellFaceTraverser(const UcBrShellFaceTraverser& src);
    ~UcBrShellFaceTraverser();

    // Assignment operator
    UcBrShellFaceTraverser& operator =  (const UcBrShellFaceTraverser& src);

    // Queries & Initialisers
    UcBr::ErrorStatus   setShellAndFace	(const UcBrFace& face);
    UcBr::ErrorStatus   setShell        (const UcBrComplexShellTraverser& complexShellTraverser);
    UcBr::ErrorStatus   setShell        (const UcBrShell& shell);
    UcBr::ErrorStatus   getShell        (UcBrShell& shell) const;
    UcBr::ErrorStatus   setFace         (const UcBrFace& face);
    UcBr::ErrorStatus   getFace         (UcBrFace& face) const;
};


#endif

